package com.ruoyi.system.domain.project.patent;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 存储教师专利信息的对象 patent
 * 
 * @author ruoyi
 * @date 2025-07-30
 */
public class Patent extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 专利唯一标识ID，自增主键 */
    private Long id;

    /** 专利生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "专利生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date patentEffectiveTime;

    /** 专利的全称 */
    @Excel(name = "专利的全称")
    private String patentName;

    /** 专利所属教师的工号 */
    @Excel(name = "专利所属教师的工号")
    private String teacherId;

    /** 专利所属教师的姓名 */
    @Excel(name = "专利所属教师的姓名")
    private String teacherName;

    /** 专利类型（如发明专利、实用新型专利等） */
    @Excel(name = "专利类型", readConverterExp = "如=发明专利、实用新型专利等")
    private String patentType;

    /** 专利是否已转化（如：是/否） */
    @Excel(name = "专利是否已转化", readConverterExp = "如=：是/否")
    private String isTransformed;

    /** 专利转化的具体日期，未转化则为空 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "专利转化的具体日期，未转化则为空", width = 30, dateFormat = "yyyy-MM-dd")
    private Date transformTime;

    /** 专利相关附件的存储路径或URL */
    @Excel(name = "专利相关附件的存储路径或URL")
    private String attachment;
    /** 开始时间 */
    private Date beginTime;
    /** 结束时间 */
    private Date endTime;
    /** 当前用户角色 */
    private String currentRole;
    /** 部门ID */
    private Long deptId;
    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setPatentEffectiveTime(Date patentEffectiveTime) 
    {
        this.patentEffectiveTime = patentEffectiveTime;
    }

    public Date getPatentEffectiveTime() 
    {
        return patentEffectiveTime;
    }

    public void setPatentName(String patentName) 
    {
        this.patentName = patentName;
    }

    public String getPatentName() 
    {
        return patentName;
    }

    public void setTeacherId(String teacherId) 
    {
        this.teacherId = teacherId;
    }

    public String getTeacherId() 
    {
        return teacherId;
    }

    public void setTeacherName(String teacherName) 
    {
        this.teacherName = teacherName;
    }

    public String getTeacherName() 
    {
        return teacherName;
    }

    public void setPatentType(String patentType) 
    {
        this.patentType = patentType;
    }

    public String getPatentType() 
    {
        return patentType;
    }

    public void setIsTransformed(String isTransformed) 
    {
        this.isTransformed = isTransformed;
    }

    public String getIsTransformed() 
    {
        return isTransformed;
    }

    public void setTransformTime(Date transformTime) 
    {
        this.transformTime = transformTime;
    }

    public Date getTransformTime() 
    {
        return transformTime;
    }

    public void setAttachment(String attachment) 
    {
        this.attachment = attachment;
    }

    public String getAttachment() 
    {
        return attachment;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("patentEffectiveTime", getPatentEffectiveTime())
            .append("patentName", getPatentName())
            .append("teacherId", getTeacherId())
            .append("teacherName", getTeacherName())
            .append("patentType", getPatentType())
            .append("isTransformed", getIsTransformed())
            .append("transformTime", getTransformTime())
            .append("attachment", getAttachment())
            .toString();
    }

    public String getCurrentRole() {
        return currentRole;
    }

    public void setCurrentRole(String currentRole) {
        this.currentRole = currentRole;
    }

    public Date getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(Date beginTime) {
        this.beginTime = beginTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }
}
